/*
 * Filename PreOrderService.java 2022年10月10日
 * Copyright © Ehome Co.Ltd. All Rgiths Reserved.
 * @author wuyingchao
 */
package com.ehome.poct.core.api.virtual;

import com.ehome.poct.core.api.dto.order.PrePlaceOrderDTO;
import com.ehome.poct.core.api.vo.order.OrderStatusVO;
import com.ehome.poct.core.api.vo.order.PreOrderPayReqDTO;
import com.ehome.poct.core.api.vo.order.PreOrderPayRspVO;
import com.ehome.poct.core.api.vo.order.PreOrderRspVO;

/**
 * 支付前置订单服务
 *
 * @author wyc
 * @since 2022/10/10 16:15
 **/
public interface PreOrderService {
    PreOrderRspVO order(PrePlaceOrderDTO placeOrder);

    /**
     * 新版支付前置下单
     *
     * @param placeOrder
     * @return
     */
    PreOrderRspVO orderV2(PrePlaceOrderDTO placeOrder);

    PreOrderRspVO reOrder(String orderNo);

    /**
     * 客户端唤起支付
     *
     * @param payReqDTO 唤起支付请求参数
     * @return
     */
    PreOrderPayRspVO pay(PreOrderPayReqDTO payReqDTO);
    PreOrderPayRspVO payV2(PreOrderPayReqDTO payReqDTO);

    /**
     * 统一订单查询
     * 请不要使用该方法，里面没有订单相关的业务逻辑处理
     *
     * @param orderNo 业务订单号
     * @return
     */
    OrderStatusVO queryOrderStatus(String orderNo);
}